package de.tudarmstadt.ukp.muip.fibqdojo.visitor;

import java.util.List;

import com.google.common.collect.Lists;

import de.tudarmstadt.ukp.muip.fibqdojo.Sentence;
import de.tudarmstadt.ukp.muip.fibqdojo.SentenceToken;
import de.tudarmstadt.ukp.muip.fibqdojo.Token;
import de.tudarmstadt.ukp.muip.fibqdojo.interfaces.IFIBQSentenceToken;
import de.tudarmstadt.ukp.muip.fibqdojo.interfaces.IFIBQToken;
import de.tudarmstadt.ukp.muip.fibqdojo.interfaces.IStructureVisitor;
import de.tudarmstadt.ukp.muip.fibqdojo.japanese.JapaneseToken;

public class GetTokenListVisitor implements IStructureVisitor{
    
    private List<IFIBQToken> tokens = Lists.newArrayList();
    
    public List<IFIBQToken> getTokens() {
        return tokens;
    }

    @Override
    public void visit(JapaneseToken token) {
        tokens.add(token);
    }

    @Override
    public void visit(Token token) {
        tokens.add(token);
    }

    @Override
    public void visit(SentenceToken token) {
        tokens.add(token.getToken());
    }

    @Override
    public void visit(Sentence sentence) {
        for (IFIBQSentenceToken sentToken : sentence.getSentenceTokens()){
            sentToken.accept(this);
        }
    }
}
